A “system-on-chip” or “SOC” is a type of integrated circuit (IC). An SOC includes one or more processors that execute program code and one or more other circuits coupled to, and that operate cooperatively with, the processor(s). The processor(s) may execute program code in the context of a system run-time, e.g., an operating system. In some cases, the SOC may include programmable circuitry that is coupled to the processor. The programmable circuitry may be configured, by loading configuration data, to implement any of a variety of different types of systems therein. In one example, an SOC may include a hardwired processor coupled to field programmable gate array (FPGA) circuitry.
A design to be implemented within an SOC is multi-faceted. For example, the design will include program code that is executed by the processor(s) within the SOC. The design will also include a circuit design. The circuit design is implemented within the programmable circuitry of the SOC. In a well-crafted SOC, both the program code and the circuit design must operate correctly as intended. Further, the processor, in executing the program code, and the circuits implemented within the programmable circuitry must interact with one another in an efficient manner.